#ifndef COMMON_IVECTOR_H
#define COMMON_IVECTOR_H

#include <vector>
#include "Common/Collections/IIterator.h"
#include "Common/Collections/IIterable.h"
#include "Common/Collections/ICollection.h"

template<typename T>
class IVector : public ICollection<T> {
public:
	virtual ~IVector() {}

	virtual T operator[](int index) = 0;

	virtual int IndexOf(T item) const = 0;
	virtual void Insert(int index, T item) = 0;
	virtual void RemoveAt(int index) = 0;
};

#endif
